package com.charity.service;

import java.util.Map;

import com.charity.domain.User;

public interface IUserService {
    /**
     * 用户注册
     * @param user 用户信息
     * @return 注册结果
     */
    boolean register(User user);

    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     * @return 登录用户信息
     */
    User login(String username, String password);

    /**
     * 管理端登录
     * @param username 用户名
     * @param password 密码
     * @return 登录用户信息
     */
    User adminLogin(String username, String password);

    /**
     * 根据用户名查询用户
     * @param username 用户名
     * @return 用户信息
     */
    User getByUsername(String username);

     /**
     * 根据用户名查询管理员
     * @param username 用户名
     * @return 用户信息
     */
    User getAdminByUsername(String username);

    /**
     * 更新用户信息
     * @param user 用户信息
     * @return 更新结果
     */
    boolean updateUser(User user);

    /**
     * 获取用户列表
     * @param page 页码
     * @param size 每页大小
     * @param username 用户名（可选）
     * @param userType 用户类型（可选）
     * @return 用户列表数据
     */
    Map<String, Object> getUsers(int page, int size, String username, Integer userType);
}